/**
 * 权限模块的接口
 */

// 角色类
export interface Role {
  id?: number; // 主键
  nameZh?: string;
  name?: string;
  defaultRole?: boolean; // 默认角色
  enabled?: boolean; // 是否可用
  level?: number; //登记
  // 特殊属性，一般用于配合前端展示
  loading?: boolean; // 记录状态，用于在表格中表示该行是否在加载中。例如某角色状态的修改。
}
// 部门类
export interface Department {
  id?: number; // 主键
  parentId?: number; //父部门id。
  sort?: number; //排序
}
// 账户类
export interface User {
  id?: number; // 主键
  username?: string; //账户名
  nickName?: string; // 网名
  sex?: number; //性别
  description?: string; //个人描述
  headImgUrl?: string; // 头像
  departmentId?: number; // 部门主键
  status?: number; //账户状态
  department?: Department; // 部门对象
  roleIds?: number[]; // 角色id集合，用于传递到服务端
  roles?: Role[]; // 角色集合，一般是从服务端传到前端
  createTimeQueryOfBegin?: string; //注册开始日期查询-开始
  createTimeQueryOfEnd?: string; //注册截止日期查询-开始
}

// 权限类
export interface Permission {
  id: number; // 主键
  parentId: number; //父权限id
  type: number; // 类型
  name: string; // 菜单名称
  sort: number; //升序排列
  linkType: number; // 菜单类型
  route: string; // 对应路由的path
  component: string; // 对应路由的name
  path: string; // 对应路由的组件地址
  redirect: string; // 对应路由的redirect
  url: string; // 链接
  children: Permission[]; // 子组件集合
  requireAuth: boolean; // 是否要求登录后才能访问
  display?: boolean; //是否在前台显示
}

// 密码修改
export interface UserPassword {
  password: string; // 原密码
  newPassword: string; // 新密码
  confirmPassword: string; // 确认密码
}
